#ifndef EDITORDEFASE_H
#define EDITORDEFASE_H

#include <QObject>
#include <QPixmap>
#include <QAction>
#include <QPoint>
#include <QPainter>
#include <QImage>
#include <QHash>
#include <QString>
#include <QPoint>
#include "elementodefase.h"
#include "fase.h"

class EditorDeFase: public QObject
{
    Q_OBJECT

public:
    EditorDeFase(QPixmap *imagemFasePixmap);
    ~EditorDeFase();

    QPixmap *imagemFasePixmap()const;
    ElementoDeFase *elementoDeFase()const;
    QPoint pontoDeRepaint()const;


    void setElementoDeFase(const ElementoDeFase &elementoDeFase);
    void setPontoDeRepaint(const QPoint &pontoDeRepaint);

    void atualizaFase();
    void salvar(QString &path);

private:
    int contadorCaixa;
    int contadorPontoX;
    int contadorHeroi;
    QPixmap *_imagemFasePixmap;
    ElementoDeFase *_elementoDeFase;
    QPainter *painter;
    PontoHash _pontoDeRapaint;
    QHash<PontoHash, editacao::Elementos> _hashElementosDaFase;
    QPoint pontoHeroi;
    Fase *fase;

    void montarFase();
    void atualizaHashElementos();


};

#endif // EDITORDEFASE_H
